package v1

import (
	"ginblog/model"
	"ginblog/utils/errmsg"
	"github.com/gin-gonic/gin"
	"net/http"
)

// UpLoad 上传图片接口
// UpLoad 处理文件上传请求。
// 参数: c *gin.Context - Gin框架的上下文，用于处理HTTP请求和响应。
// 该函数从请求中获取文件，调用模型函数上传文件，并返回上传状态和文件URL。
func UpLoad(c *gin.Context) {
	// 获取上传的文件和文件头信息。
	file, fileHeader, _ := c.Request.FormFile("file")

	// 获取文件大小。
	fileSize := fileHeader.Size

	// 调用模型函数上传文件，返回文件URL和状态码。
	url, code := model.UpLoadFile(file, fileSize)

	// 构建响应体，包含上传状态码、消息和文件URL。
	c.JSON(http.StatusOK, gin.H{
		"status":  code,
		"message": errmsg.GetErrMsg(code),
		"url":     url,
	})
}
